﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Telerik.Web.UI;
using SMA.GENTEv1;

public partial class _includes__popup_ipIncluirParamBenefAO : PageBase
{
    private string tipoRegra = "";
    private int idConvencao = 0;
    private int idContrato = 0;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["TipoRegra"] != null)
            tipoRegra = Request.QueryString["TipoRegra"].ToString();

        if (Request.QueryString["IdConvencao"] != null)
            idConvencao = int.Parse(Request.QueryString["IdConvencao"].ToString());

        if (Request.QueryString["IdContrato"] != null)
            idContrato = int.Parse(Request.QueryString["IdContrato"].ToString());
    }

    #region Eventos
    protected void btnSalvar_Click(object sender, EventArgs e)
    {
        try
        {
            switch (tipoRegra)
            {
                case "2":
                    SalvarConfigConvencao();
                    break;
                case "3":
                    SalvarConfigContrato();
                    break;
                case "4":
                    SalvarConfigLiberalidade();
                    break;
            }

            ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind('email');", true);
        }
        catch (Exception ex)
        {
            ExibirMensagem(true, ex.Message);
        }
    }

    protected void btnLimpar_Click(object sender, EventArgs e)
    {
        rcbConvObrigatorio.Text = "";
        rcbExtensivoDepend.Text = "";
        rdpDataInicial.SelectedDate = null;
        rdpDataFinal.SelectedDate = null;
    }
    #endregion

    #region Metodos
    private void SalvarConfigConvencao()
    {
        try
        {
            ConfiguracaoRegraConvencao configConvencao = new ConfiguracaoRegraConvencao();
            configConvencao.Convencao = new Convencao(idConvencao, false);
            configConvencao.Beneficio = new TipoBeneficio((int)TipoBeneficio.TipoBenef.Assistencia_Odontologica, false);

            if (rdpDataInicial.SelectedDate != null)
                configConvencao.DtInicio = DateTime.Parse(rdpDataInicial.SelectedDate.ToString());
            if (rdpDataFinal.SelectedDate != null)
                configConvencao.DtFim = DateTime.Parse(rdpDataFinal.SelectedDate.ToString());

            configConvencao.Status = new Status(1);
            configConvencao.Valor = 1;
            configConvencao.TipoValor = new TipoValor((int)TipoValor.Tipo.Unidade, false);
            configConvencao.Obrigatorio = rcbConvObrigatorio.SelectedValue;
            configConvencao.ExtensivoDependente = rcbExtensivoDepend.SelectedValue;
            configConvencao.DescontoFolha = "N";

            configConvencao.Salvar();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void SalvarConfigContrato()
    {
        try
        {
            ConfiguracaoRegraContrato configContrato = new ConfiguracaoRegraContrato();
            configContrato.Contrato = new Contrato(idContrato);
            configContrato.Beneficio = new TipoBeneficio((int)TipoBeneficio.TipoBenef.Assistencia_Odontologica, false);

            if (rdpDataInicial.SelectedDate != null)
                configContrato.DtInicio = DateTime.Parse(rdpDataInicial.SelectedDate.ToString());
            if (rdpDataFinal.SelectedDate != null)
                configContrato.DtFim = DateTime.Parse(rdpDataFinal.SelectedDate.ToString());

            configContrato.Status = new Status(1);
            configContrato.Valor = 1;
            configContrato.TipoValor = new TipoValor((int)TipoValor.Tipo.Unidade, false);
            configContrato.Obrigatorio = rcbConvObrigatorio.SelectedValue;
            configContrato.ExtensivoDependente = rcbExtensivoDepend.SelectedValue;
            configContrato.DescontoFolha = "N";

            configContrato.Salvar();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void SalvarConfigLiberalidade()
    {
        try
        {
            ConfiguracaoRegraLiberalidade configLiberalidade = new ConfiguracaoRegraLiberalidade();
            configLiberalidade.Organizacao = new Organizacao(IdPrestador);
            configLiberalidade.Beneficio = new TipoBeneficio((int)TipoBeneficio.TipoBenef.Assistencia_Odontologica, false);

            if (rdpDataInicial.SelectedDate != null)
                configLiberalidade.DtInicio = DateTime.Parse(rdpDataInicial.SelectedDate.ToString());
            if (rdpDataFinal.SelectedDate != null)
                configLiberalidade.DtFim = DateTime.Parse(rdpDataFinal.SelectedDate.ToString());

            configLiberalidade.Status = new Status(1);
            configLiberalidade.Valor = 1;
            configLiberalidade.TipoValor = new TipoValor((int)TipoValor.Tipo.Unidade, false);
            configLiberalidade.Obrigatorio = rcbConvObrigatorio.SelectedValue;
            configLiberalidade.ExtensivoDependente = rcbExtensivoDepend.SelectedValue;
            configLiberalidade.DescontoFolha = "N";

            configLiberalidade.Salvar();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void ExibirMensagem(bool _msgErro, string _textoMsg)
    {
        try
        {
            OcultaMsgPagina(false);
            if (_msgErro)
            {
                lblResultado.ForeColor = System.Drawing.Color.Red;
                lblResultado.Text = _textoMsg;
            }
            else
            {
                lblResultado.ForeColor = System.Drawing.Color.Black;
                lblResultado.Text = _textoMsg;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void OcultaMsgPagina(bool oculta)
    {
        trMensagem.Visible = !oculta;
    }
    #endregion
}
